subroutines
Subroutines are blocks of code that can be called from elsewhere in a function.
Subroutines take no arguments and return no results, but can access all variables
available to the function.
functions
XBasic functions are fully encapsulated and bullet-proof by default. Variables are
AUTO (local and temporary) unless declared otherwise, and changes outside a function have
no effect within the function except as explicitly specified within the function.
Functions arguments can be variables and arrays of any built-in or user-defined data
types. Functions can return variables of any data type.
By default, arguments are passed by value. Pass by value is more efficient than pass
by reference, especially in RISC systems where many arguments and variables are allocated
in registers . XBasic implements argument passing in a novel way that supports passing
arguments in any mix of by-value and by-reference each time a function is called!
Furthermore, as implemented by XBasic, pass by reference is nearly as fast as pass by
value. Pass by address is also supported for C compatibility. XBasic functions
can call C functions, and vice versa.
decisions
XBasic adds important enhancements to SELECT CASE to provide clean alternatives to
previously messy decision structures. Furthermore, the notions of TRUE and FALSE
have been extended to strings and arrays. TRUE means has contents, and FALSE means
empty. So statements like IF x$ THEN... , IF j[] THEN... , and LOOP WHILE x$ are
more readable and efficient than conventional BASIC alternatives like IF (x$ =
"") THEN... .
computed execution
Computed execution control is supported by variables and arrays of the GOADDR, SUBADDR,
and FUNCADDR data types. To GOTO a label, GOSUB a subroutine, or call a function
based upon a program condition takes only two or three machine instructions, and avoids
the need to traverse huge CASE blocks. Also, destinations can be altered dynamically
as programs run. Computed function calls are crucial in event driven programs, and
in programs where callback functions are required. Both are necessary in modern GUI
based applications.
versatile development environment
XBasic is a versatile program development environment. XBasic has the power,
flexibility, and efficiency for virtually every kind of programming, so XBasic programmers
enjoy the luxury of working in a single language and development environment to accomplish
their diverse programming projects.
XBasic introduces programming for everyone - so simple and user-friendly that it's great
for novices, yet powerful enough for the most demanding professional applications.
That's why you may never outgrow XBasic, and why XBasic is an ideal program development
environment.
XBasic : GraphicsDesigner : GuiDesigner